import sys
import runpy
import os

# 命令行指令（直接复制终端命令）
args_str = 'python3 test.py 1 2'
# args_str = 'python -m xxx 1 2'  # 示例：使用模块方式运行

# 解析参数
args = args_str.split()
if not args:
    raise ValueError("请输入有效的命令行指令")

# 处理python和-m前缀
if args[0] in ('python', 'python3'):
    args.pop(0)

# 获取当前debugTest.py所在的目录（用于定位同目录下的文件）
current_dir = os.path.dirname(os.path.abspath(__file__))

# 区分模块模式和脚本模式
is_module = args and args[0] == '-m'  # 确保args不为空再判断
if is_module:
    args.pop(0)  # 移除-m
    func = runpy.run_module
else:
    func = runpy.run_path
    # 确保脚本路径存在（此时args[0]是脚本路径）
    if not args:
        raise ValueError("缺少脚本文件路径")

    # 构造脚本的绝对路径（优先在当前debugTest.py目录下查找）
    script_path = args[0]
    # 如果不是绝对路径，则拼接当前目录
    if not os.path.isabs(script_path):
        script_path = os.path.join(current_dir, script_path)

    # 检查文件是否存在
    if not os.path.exists(script_path):
        raise FileNotFoundError(f"脚本文件不存在：{script_path}（实际查找路径）")

    # 更新args[0]为绝对路径，避免后续执行时路径错误
    args[0] = script_path

# 设置工作目录（可选，根据需要启用，例如设为当前脚本所在目录）
# os.chdir(current_dir)

# 传递参数并执行（替换sys.argv，模拟真实命令行环境）
sys.argv = [args[0]] + args[1:]  # 第一个参数是模块名或脚本名
func(args[0], run_name='__main__')
